<?

require_once 'PHPUnit/Framework.php';
require_once '../../init.php';

class Modulo11Test extends PHPUnit_Framework_TestCase
{
	public static function provider_11()
	{
		return array (
			array(1187, 8)
		);
	}

	/**
	* @dataProvider provider_11
	*/
	public function test_11($valor, $esperado)
	{
		$this->assertSame($esperado, Qi_Boleto_Calc::modulo11($valor));
		$this->assertSame($this->prova_real($valor), Qi_Boleto_Calc::modulo11($valor));
	}

	public function prova_real($valor)
	{
		$valor = (string)intval($valor);
		$multiplicador = '4329876543298765432987654329876543298765432';
		$total = 0;
		for ($i = 0; $i<=42; $i++ ):
			if (!isset($valor[$i])) break;
			$parcial = $valor[$i] * $multiplicador[$i];
			$total += $parcial;
		endfor;
		$resultado = 11-($total%11);
		if (($resultado >= 10)||($resultado == 0))
			 $resultado = 1;
		return $resultado;
    }
}

?>